package DataLayer.ImageDataContainer.ImageInfo;

import java.awt.image.BufferedImage;

public interface IImageInfo {

    /**
      * Returns the original image.
      * @return - The original image.
      */
    public BufferedImage getOriginalImage();

    /**
     * Returns the original image path.
     * @return - The original image path.
     */
    public String getOriginalImagePath();

    /**
     * Sets the original image with the given parameter.
     * @param originalImageParam - The given image.
     */
    public void setOriginalImage(BufferedImage originalImageParam);

    /**
     * Sets the original image path with the given parameter.
     * @param path - The given path.
     */
    public void setOriginalImagePath(String path);

    /**
     * Returns the preprocessed image.
     * @return - The preprocessed image.
     */
    public BufferedImage getPreprocessedImage();

    /**
     * Sets the preprocessed image path.
     * @param path - The preprocessed image path.
     */
    public void setPreprocessedImagePath(String path);

    /**
     * Sets the preprocessed image with the given parameter image.
     * @param preprocessedImageParam - The given imgae.
     */
    public void setPreprocessedImage(BufferedImage preprocessedImageParam);

    /**
     * Returns the preprocessed image path.
     * @return - The preprocessed image path.
     */
    public String getPreprocessedImagePath();

    /**
     * Returns the black and white image.
     * @return - The black and white image.
     */
    public BufferedImage getBWImage();

    /**
     * Sets the black and white image.
     * @param bwImg - black and white image.
     */
    public void setBWImage(BufferedImage bwImg);
}
